奔走相告!VS Code 终于支持「原生」的 Jupyter Notebook |
您所在的位置:网站首页 › jupyter notebook 保存为 py › 奔走相告!VS Code 终于支持「原生」的 Jupyter Notebook |
曾几何时我有幻想 Apple 如果有一天也能出一款像 Duet Display 那样的应用,可以让我的 iPad 不在吃灰,结果在 macOS 10.15 Catalina 上推出了「随航」功能,让把 iPad 作为第二屏的人们连连称赞。 我也幻想是否有这么一款编辑器,既小巧精致开箱即用,又能写Markdown、又能运行代码,还有能和其他 IDE 媲美的功能……直到我遇见了它——Visual Studio Code(本文简称 VS Code ) ,一款来自于微软大厂出品的编辑器。 VS Code 概述含着「金汤匙」横空出世地 VS Code 自发布以来每年使用率都在有所上涨。这款编辑器的受欢迎程度达到一个怎样的地步呢? 在 Stack Overflow 社区 2019 年的开发者调查1 里「Technology」部分「Development Environments and Tools」里「Most Popular Development Environments」这一小节中,VS Code 除了在移动开发环境上位居第二外,无论是在 Web 开发还是在 DevOps 上使用率都占据榜首!并且在全样本领先了微软自家 Visual Studio一大截! ![]() 最可怕的是,在调查结果中,VS Code的使用率都超过了50%。于是官方给出了这么一句作为结论总结: Visual Studio Code is a dominant player among developer environment tools this year.虽然说 Stack OverFlow 社区并不能代表所有开发技术人员,但是从这个侧面反映出了 VS Code 用户对其满意度如何。话又说回来,VS Code 对于程序员来说或许是个好用的利器,可是对于数据科学领域的使用者来说,体验并不友好。 不过好消息是,随着最近 VS Code 版本的更新,你现在终于可以在 VS Code 上体验到原生的 Jupyter Notebook 了!不了解 Jupyter Notebook 的朋友可以翻阅我之前写过的一篇文章。 👉关联阅读: 在线的 Jupyter Notebook 云环境 为行文方便本文以 Web Jupyter 和 Jupyter 来分别代称原生浏览器的 Jupyter Notebook 和 VS Code 中的 Jupyter Notebook 。 为什么我要强调「原生」二字? 因为在此之前,无论你是用 Pycharm、Spyder 还是以前版本的 VS Code,如果想要运行 Web Jupyter 式的交互环境,你就必须要在代码开头像添加装饰器(Python 中的一种特殊函数)一样,加上#%%这一顶帽子,才会在.py文件里调用交互式环境。 ![]() 同时,原生的.ipynb格式文件无法被直接预览,让人十分头疼。 如果你使用的是 macOS,又想用 Quick Look 的预览.ipynb文件的话,你可以参考 huhuhang 的这篇文章。 👉关联阅读:在 Mac 中快速预览 Jupyter Notebook 文件 倘若你用的是 Windows,那么想要预览要么查看已经是导出好的 .html 文件,要么就是老老实实打开 Web Jupyter 查看。 但是现在不需要打开Web Jupyter,在最新版本(1.39.x)的 VS Code 里你就能预览.ipynb文件,甚至还可以直接在交互环境里开始写代码了! VS Code 功能速览在阅读这部分内容时,不了解 VS Code 的读者可以参考一下 SpencerWoo 的这篇文章,里面有详尽的介绍,我这里只做简要概述。 👉关联阅读:免费好用的全平台 Markdown 编辑器,你可以自己「做」一个 这款编辑器就算是你是 Atom 或者 Sublime Text 的使用者都能很好地上手。如果你之前使用过 Sublime Text,在 VS Code 里你也可以能够快速、便捷地使用⌘+Shift+P(Windows 上使用Ctrl+Shift+P)来呼出命令面板,进行命令调用;同时关于整个编辑器的配置文件,你也可以像 Atom 那样通过改写.json文件来实现。 VS Code 也有着丰富的调试功能,支持常用的断点调试和其他调试方法,让你 debug 自己的代码简单快捷。 ![]() 但是作为一款编辑器,本体的 VS Code 仍有许多功能上的缺失。所以依靠插件就十分必要了。插件市场(Extensions Maketplace)拥有丰富的插件,你可以下载别人发布好的插件来助力你的 VS Code。不仅可以用来写代码,你也可以用来写 Markdown(本文就是在当中完成)。 ![]() 同时,自从微软收购了 Github 之后,也将 Git 的功能集成到 VS Code 中。所以现在我每次使用 VS Code 的基本流程就是将项目文件夹添加到工作区,在当中修改之后进入到 Github 的管理面板进行提交,之后呼出命令版输入git push即可推送到默认的仓库中。再也不用打开 Git Bash 了。 ![]() 以上的列举并不完全,有兴趣的朋友可以自行探索体验。 VS Code 中 Jupyter 的体验数据操作方面如果你是用来做数据分析或者科学计算,那么其实并没有什么兼容性问题。并且 VS Code 还提供了变量观察面板,方便你查看当前环境中存在的变量有哪些,这是 Web Jupyter 所不具备的。 ![]() 若是你想要在 Web Jupyter 里拥有变量面板地功能,那么可以推荐你下载 Github 上这个Jupyter 插件。 除此之外,像 Pandas 库的DataFrame类型或 Numpy 库的ndarray类型数据都能够被很好地展示。输出的结果字体样式和 VS Code 一致,看起来更加美观。 ![]() 在使用Seaborn库或者matplotlib库中并没有发现什么问题,使用体验和 Web Jupyter 并无二致。 ![]() 同时,像Bokeh或是plotly_express这样的第三方可视化交互库都能完美支持。 ![]() 如果你打算像在 Web Jupyter 那样直接在 Jupyter 里使用 Pyecharts,虽然运行成功,但是不会渲染出任何图形。 经过向 Pycharts 库的作者咨询并参考官方文档后,摸索出了解决方案: 首先需要在 Cell 开头声明 Notebook 类型为 JUPYTER_LAB(从这里可以看出 VS Code 里的 Jupyter 可能是以 Jupyter Lab 进行开发)之后调用一次load_javascript()加载 JavaScript 渲染。渲染一次后,只要不是关闭.ipynb文件重新进入到交互环境中,那之后的图形只要运行render_notebook()即可生成相应的渲染图形注:其中第二步和第三步的命令需要分开运行,不能放在一个 Cell 中,否则无效。 实例代码如下: #%% from pyecharts.globals import CurrentConfig, NotebookType CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB from pyecharts.charts import Bar bar = Bar() bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]) bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90]) bar.load_javascript() #加载JavaScript渲染 #%% bar.render_notebook()最终呈现效果如下: ![]() 虽然在实际使用中 VS Code 好像已经能拥有和 Web Jupyter 一样的体验了,但是这仅仅只是过了「及格线」,还不能算「优等生」。 Jupyter Notebook 的一些功能仍无法使用在 Web Jupyter 中,你不仅可以将.ipynb文件导出成 .html、.tex、.pdf 甚至是幻灯片。而在 Jupyter 中,目前除了可以转化成.py文件以外其他格式均不支持;转化成的.py格式其实也就是将原来的那顶「帽子」给戴上。 我对 LaTex 格式没有太多需求,但是.html和.pdf 格式才是方便将你的成果向别人展示一个比较好的方式。可惜这两种在 VS Code 里的 Jupyter 目前都不支持。 同时,像一些原生的快捷键也不支持,比如从鼠标光标所在之处使用 ⌃⇧Minus(Windows使用 Ctrl+Shift+-)将一个 Cell 分裂成两个独立的 Cell 等。所以支持的快捷键并不算多。 ![]() 在命令补全上,让我拥有良好补全体验的,Pycharm 是一个,另一个就是 Web Jupyter。 相对与 Web Jupyter 来说,在 Jupyter 中,命令补全仍然是件很难受的事情:用Tab键来补全时灵时不灵,并且有时候即使弹出命令提示,你仍然无法用回车将其补全,需要自己输入完整。(可能是个 BUG) 而在 Web Jupyter 界面中你不仅仅能够用Tab来尽可能地补全命令,同时你还可以使用Shift+Tab的组合调出函数的参考文档。 ![]() 编辑器之争是老生常谈的话题,但即使 VS Code 再怎么好用,可能也很难撼动 Vim 在一些程序员心中的地位;喜欢 Sublime Text 的朋友仍旧会使用 Sublime Text。同时,作为公认好用的 Python IDE——Pycharm 在大型项目上有着更强大的功能、更极致的性能,而这又是 VS Code 无法企及的。 但是 VS Code 胜在它小巧、灵动。如果平时是自己写小项目或是脚本,我肯定是用 VS Code 或是 Web Jupyter,而不是打开 Pycharm。 尽管 VS Code 目前对原生 Jupyter Notebook 的支持并不完善,对新手而言也有一定的使用难度;但是如果你是个熟练的「老鸟」或者是个已经熟悉了 Web Jupyter 的人,相信我上面所列的不足可能不会对你造成什么太大影响。 当你使用 VS Code 时,你就能体验到在一个有着文件管理功能、又能写.py又能写.ipynb的开发环境中无缝衔接是多么地爽! 文中代码来自官方文档例子,略有修改。 题图 Icon 来自于官方网站、Iconfont。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |